package com.wisdom.core.netty.handler.coder;

import io.netty.handler.codec.LengthFieldBasedFrameDecoder;

/**
 * @description: <frame decoder 一次解码器>
 * @author: Leo
 * @date:2021-08-22 14:49
 */
public class FrameDecoder extends LengthFieldBasedFrameDecoder {

    public FrameDecoder() {

        /*
           请求的数据格式： header + body   header存储 dody 的总字节长度  用4个字节来存储   用来解决TCP的 粘包/半包问题
            此处对于数据最大长度不做限制  maxFrameLength ：Integer.MAX_VALUE
            头信息从 第0个字节开始 读   lengthFieldOffset ： 0
            读4个字节长度的header信息  lengthFieldLength ： 4
            header与 body 之间的信息  lengthAdjustment ： 0      此处不额外插入数据
            交给下层处理器时祛除头信息   initialBytesToStrip ： 4
         */

        super(Integer.MAX_VALUE, 0, 4, 0, 4);
    }
}
